package top.fengleifeng.question;

/**
 * @author : fengelfeing
 * @Package : top.fengleifeng.question
 * @Description: 给定一个数组 nums ，如果 i < j 且 nums[i] > 2*nums[j] 我们就将 (i, j) 称作一个重要翻转对。
 * <p>
 * 你需要返回给定数组中的重要翻转对的数量。
 * <p>
 * 示例 1:
 * <p>
 * 输入: [1,3,2,3,1]
 * 输出: 2
 * 示例 2:
 * <p>
 * 输入: [2,4,3,5,1]
 * 输出: 3
 * 注意:
 * <p>
 * 给定数组的长度不会超过50000。
 * 输入数组中的所有数字都在32位整数的表示范围内。
 * 通过次数7,593提交次数26,304
 * 在真实的面试中遇到过这道题？
 * <p>
 * 是
 * <p>
 * 否
 * 贡献者
 * <p>
 * 相关企业
 * 相关标签
 * 相似题目
 * <p>
 * 题目列表
 * <p>
 * <p>
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/reverse-pairs
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 * @Date: 2020年10月27日8:42 下午
 */
public class Num493翻转对 {

    class Solution {
        public int reversePairs(int[] nums) {
            int count = 0;
            for (int i = 0; i < nums.length; i++) {
                for (int j = i + 1; j < nums.length; j++) {
                    long int2 = ((long)nums[j])*2;
                    if (nums[i] > int2) {
                        count++;
                    }
                }
            }
            return count++;
        }
    }

    public static void main(String[] args) {
        int [] ints = {2147483647,2147483647,2147483647,2147483647,2147483647,2147483647};
        int i = new Num493翻转对().new Solution().reversePairs(ints);
        System.out.println(i);
    }
}
